<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>create_sheet_of_light_model [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_3dreconstruction.html">3D Reconstruction</a> / <a href="toc_3dreconstruction_sheetoflight.html">Sheet of Light</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">create_sheet_of_light_model</span><span data-if="c" style="display:none;">T_create_sheet_of_light_model</span><span data-if="cpp" style="display:none;">CreateSheetOfLightModel</span><span data-if="dotnet" style="display:none;">CreateSheetOfLightModel</span><span data-if="python" style="display:none;">create_sheet_of_light_model</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">create_sheet_of_light_model</span><span data-if="c" style="display:none;">T_create_sheet_of_light_model</span><span data-if="cpp" style="display:none;">CreateSheetOfLightModel</span><span data-if="dotnet" style="display:none;">CreateSheetOfLightModel</span><span data-if="python" style="display:none;">create_sheet_of_light_model</span></code> — Create a model to perform 3D-measurements using the sheet-of-light
technique.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>create_sheet_of_light_model</b>(<a href="#ProfileRegion"><i>ProfileRegion</i></a> :  : <a href="#GenParamName"><i>GenParamName</i></a>, <a href="#GenParamValue"><i>GenParamValue</i></a> : <a href="#SheetOfLightModelID"><i>SheetOfLightModelID</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_create_sheet_of_light_model</b>(const Hobject <a href="#ProfileRegion"><i>ProfileRegion</i></a>, const Htuple <a href="#GenParamName"><i>GenParamName</i></a>, const Htuple <a href="#GenParamValue"><i>GenParamValue</i></a>, Htuple* <a href="#SheetOfLightModelID"><i>SheetOfLightModelID</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>CreateSheetOfLightModel</b>(const HObject&amp; <a href="#ProfileRegion"><i>ProfileRegion</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#SheetOfLightModelID"><i>SheetOfLightModelID</i></a>)</code></p>
<p>
<code><a href="HSheetOfLightModel.html">HSheetOfLightModel</a> <a href="HRegion.html">HRegion</a>::<b>CreateSheetOfLightModel</b>(const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code><a href="HSheetOfLightModel.html">HSheetOfLightModel</a> <a href="HRegion.html">HRegion</a>::<b>CreateSheetOfLightModel</b>(const HString&amp; <a href="#GenParamName"><i>GenParamName</i></a>, Hlong <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code><a href="HSheetOfLightModel.html">HSheetOfLightModel</a> <a href="HRegion.html">HRegion</a>::<b>CreateSheetOfLightModel</b>(const char* <a href="#GenParamName"><i>GenParamName</i></a>, Hlong <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code><a href="HSheetOfLightModel.html">HSheetOfLightModel</a> <a href="HRegion.html">HRegion</a>::<b>CreateSheetOfLightModel</b>(const wchar_t* <a href="#GenParamName"><i>GenParamName</i></a>, Hlong <a href="#GenParamValue"><i>GenParamValue</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
<p>
<code>void <a href="HSheetOfLightModel.html">HSheetOfLightModel</a>::<b>HSheetOfLightModel</b>(const HRegion&amp; <a href="#ProfileRegion"><i>ProfileRegion</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HSheetOfLightModel.html">HSheetOfLightModel</a>::<b>HSheetOfLightModel</b>(const HRegion&amp; <a href="#ProfileRegion"><i>ProfileRegion</i></a>, const HString&amp; <a href="#GenParamName"><i>GenParamName</i></a>, Hlong <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HSheetOfLightModel.html">HSheetOfLightModel</a>::<b>HSheetOfLightModel</b>(const HRegion&amp; <a href="#ProfileRegion"><i>ProfileRegion</i></a>, const char* <a href="#GenParamName"><i>GenParamName</i></a>, Hlong <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HSheetOfLightModel.html">HSheetOfLightModel</a>::<b>HSheetOfLightModel</b>(const HRegion&amp; <a href="#ProfileRegion"><i>ProfileRegion</i></a>, const wchar_t* <a href="#GenParamName"><i>GenParamName</i></a>, Hlong <a href="#GenParamValue"><i>GenParamValue</i></a>)  <span class="signnote">
            (
            Windows only)
          </span></code></p>
<p>
<code>void <a href="HSheetOfLightModel.html">HSheetOfLightModel</a>::<b>CreateSheetOfLightModel</b>(const HRegion&amp; <a href="#ProfileRegion"><i>ProfileRegion</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HSheetOfLightModel.html">HSheetOfLightModel</a>::<b>CreateSheetOfLightModel</b>(const HRegion&amp; <a href="#ProfileRegion"><i>ProfileRegion</i></a>, const HString&amp; <a href="#GenParamName"><i>GenParamName</i></a>, Hlong <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HSheetOfLightModel.html">HSheetOfLightModel</a>::<b>CreateSheetOfLightModel</b>(const HRegion&amp; <a href="#ProfileRegion"><i>ProfileRegion</i></a>, const char* <a href="#GenParamName"><i>GenParamName</i></a>, Hlong <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HSheetOfLightModel.html">HSheetOfLightModel</a>::<b>CreateSheetOfLightModel</b>(const HRegion&amp; <a href="#ProfileRegion"><i>ProfileRegion</i></a>, const wchar_t* <a href="#GenParamName"><i>GenParamName</i></a>, Hlong <a href="#GenParamValue"><i>GenParamValue</i></a>)  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>CreateSheetOfLightModel</b>(<a href="HObject.html">HObject</a> <a href="#ProfileRegion"><i>profileRegion</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#SheetOfLightModelID"><i>sheetOfLightModelID</i></a>)</code></p>
<p>
<code><a href="HSheetOfLightModel.html">HSheetOfLightModel</a> <a href="HRegion.html">HRegion</a>.<b>CreateSheetOfLightModel</b>(<a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code><a href="HSheetOfLightModel.html">HSheetOfLightModel</a> <a href="HRegion.html">HRegion</a>.<b>CreateSheetOfLightModel</b>(string <a href="#GenParamName"><i>genParamName</i></a>, int <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code>public <a href="HSheetOfLightModel.html">HSheetOfLightModel</a>(<a href="HRegion.html">HRegion</a> <a href="#ProfileRegion"><i>profileRegion</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code>public <a href="HSheetOfLightModel.html">HSheetOfLightModel</a>(<a href="HRegion.html">HRegion</a> <a href="#ProfileRegion"><i>profileRegion</i></a>, string <a href="#GenParamName"><i>genParamName</i></a>, int <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code>void <a href="HSheetOfLightModel.html">HSheetOfLightModel</a>.<b>CreateSheetOfLightModel</b>(<a href="HRegion.html">HRegion</a> <a href="#ProfileRegion"><i>profileRegion</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code>void <a href="HSheetOfLightModel.html">HSheetOfLightModel</a>.<b>CreateSheetOfLightModel</b>(<a href="HRegion.html">HRegion</a> <a href="#ProfileRegion"><i>profileRegion</i></a>, string <a href="#GenParamName"><i>genParamName</i></a>, int <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>create_sheet_of_light_model</b>(<a href="#ProfileRegion"><i>profile_region</i></a>: HObject, <a href="#GenParamName"><i>gen_param_name</i></a>: MaybeSequence[str], <a href="#GenParamValue"><i>gen_param_value</i></a>: MaybeSequence[Union[int, float, str]]) -&gt; HHandle</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">create_sheet_of_light_model</span><span data-if="c" style="display:none">create_sheet_of_light_model</span><span data-if="cpp" style="display:none">CreateSheetOfLightModel</span><span data-if="com" style="display:none">CreateSheetOfLightModel</span><span data-if="dotnet" style="display:none">CreateSheetOfLightModel</span><span data-if="python" style="display:none">create_sheet_of_light_model</span></code> creates a model to
perform 3D-Measurements using the sheet-of-light technique.
</p>
<p>The sheet-of-light technique performs a three-dimensional reconstruction
of the surface of an opaque and diffuse reflecting solid by using an area
scan camera and a light line projector (typically a laser line projector).
The camera and the line projector must be mounted so that their main axis
form an angle of triangulation. The value of the angle of triangulation is
typically chosen between 30° and 60°. The projected light line defines a
plane in space. This plane intersects the surface of the solid under
measurement and builds a profile of the surface visible for the camera. By
moving the solid in front of the measurement system (i.e., the combination
of the camera and the line projector), it is possible to record the whole
surface of the solid. As an alternative, the measurement system can also
be moved over the surface under measurement. Please note that the profiles
must be oriented roughly horizontal in the profile images, because they
are processed column by column.
</p>
<p>If geometrical information about the measurement setup is available, it
is possible to compute true three-dimensional coordinates of the
reconstructed surface. For an overview of the required geometrical (i.e.,
calibration) information, refer to 该算子
<a href="set_sheet_of_light_param.html"><code><span data-if="hdevelop" style="display:inline">set_sheet_of_light_param</span><span data-if="c" style="display:none">set_sheet_of_light_param</span><span data-if="cpp" style="display:none">SetSheetOfLightParam</span><span data-if="com" style="display:none">SetSheetOfLightParam</span><span data-if="dotnet" style="display:none">SetSheetOfLightParam</span><span data-if="python" style="display:none">set_sheet_of_light_param</span></code></a>. If such information is not available,
the result of the measurement is a disparity image, where each pixel holds
a record of the subpixel precise position of the detected profile.
</p>
<p>该算子 returns a handle to the sheet-of-light model in
<a href="#SheetOfLightModelID"><i><code><span data-if="hdevelop" style="display:inline">SheetOfLightModelID</span><span data-if="c" style="display:none">SheetOfLightModelID</span><span data-if="cpp" style="display:none">SheetOfLightModelID</span><span data-if="com" style="display:none">SheetOfLightModelID</span><span data-if="dotnet" style="display:none">sheetOfLightModelID</span><span data-if="python" style="display:none">sheet_of_light_model_id</span></code></i></a>, which is used for all further operations on
the sheet-of-light model, like modifying parameters of the model, measuring
profiles, applying calibration transformations or accessing the results of
measurements.
</p>
<p><b>Mandatory input iconic parameters</b>
</p>
<p>In order to perform measurements, you will have to set the following
input iconic parameter:
</p>
<dl class="generic">

<p>- <a href="#ProfileRegion"><i><code><span data-if="hdevelop" style="display:inline">ProfileRegion</span><span data-if="c" style="display:none">ProfileRegion</span><span data-if="cpp" style="display:none">ProfileRegion</span><span data-if="com" style="display:none">ProfileRegion</span><span data-if="dotnet" style="display:none">profileRegion</span><span data-if="python" style="display:none">profile_region</span></code></i></a>: defines the region of the
profile images, which will be processed by 该算子
<a href="measure_profile_sheet_of_light.html"><code><span data-if="hdevelop" style="display:inline">measure_profile_sheet_of_light</span><span data-if="c" style="display:none">measure_profile_sheet_of_light</span><span data-if="cpp" style="display:none">MeasureProfileSheetOfLight</span><span data-if="com" style="display:none">MeasureProfileSheetOfLight</span><span data-if="dotnet" style="display:none">MeasureProfileSheetOfLight</span><span data-if="python" style="display:none">measure_profile_sheet_of_light</span></code></a>. This region should be rectangular
and can be generated e.g., by using 该算子 <a href="gen_rectangle1.html"><code><span data-if="hdevelop" style="display:inline">gen_rectangle1</span><span data-if="c" style="display:none">gen_rectangle1</span><span data-if="cpp" style="display:none">GenRectangle1</span><span data-if="com" style="display:none">GenRectangle1</span><span data-if="dotnet" style="display:none">GenRectangle1</span><span data-if="python" style="display:none">gen_rectangle1</span></code></a>.
If the region passed to <a href="#ProfileRegion"><i><code><span data-if="hdevelop" style="display:inline">ProfileRegion</span><span data-if="c" style="display:none">ProfileRegion</span><span data-if="cpp" style="display:none">ProfileRegion</span><span data-if="com" style="display:none">ProfileRegion</span><span data-if="dotnet" style="display:none">profileRegion</span><span data-if="python" style="display:none">profile_region</span></code></i></a> is not rectangular,
its smallest enclosing rectangle (bounding box) will be used.
Note that <a href="#ProfileRegion"><i><code><span data-if="hdevelop" style="display:inline">ProfileRegion</span><span data-if="c" style="display:none">ProfileRegion</span><span data-if="cpp" style="display:none">ProfileRegion</span><span data-if="com" style="display:none">ProfileRegion</span><span data-if="dotnet" style="display:none">profileRegion</span><span data-if="python" style="display:none">profile_region</span></code></i></a> is only taken into account by the
operator <a href="measure_profile_sheet_of_light.html"><code><span data-if="hdevelop" style="display:inline">measure_profile_sheet_of_light</span><span data-if="c" style="display:none">measure_profile_sheet_of_light</span><span data-if="cpp" style="display:none">MeasureProfileSheetOfLight</span><span data-if="com" style="display:none">MeasureProfileSheetOfLight</span><span data-if="dotnet" style="display:none">MeasureProfileSheetOfLight</span><span data-if="python" style="display:none">measure_profile_sheet_of_light</span></code></a> and is ignored when
disparity images are processed.
</p>
</dl>
<p><b>Default settings of the sheet-of-light model parameters</b>
</p>
<p>The default settings of the sheet-of-light model were chosen to perform
non-calibrated measurements in a basic configuration. The following
list provides an overview of the parameter values used by default
(refer to <a href="set_sheet_of_light_param.html"><code><span data-if="hdevelop" style="display:inline">set_sheet_of_light_param</span><span data-if="c" style="display:none">set_sheet_of_light_param</span><span data-if="cpp" style="display:none">SetSheetOfLightParam</span><span data-if="com" style="display:none">SetSheetOfLightParam</span><span data-if="dotnet" style="display:none">SetSheetOfLightParam</span><span data-if="python" style="display:none">set_sheet_of_light_param</span></code></a> for a detailed description
of all supported generic parameters):
</p>
<dl class="generic">


<dt><b><i><span data-if="hdevelop" style="display:inline">'method'</span><span data-if="c" style="display:none">"method"</span><span data-if="cpp" style="display:none">"method"</span><span data-if="com" style="display:none">"method"</span><span data-if="dotnet" style="display:none">"method"</span><span data-if="python" style="display:none">"method"</span></i></b></dt>
<dd>
<p>
 is set to <i><span data-if="hdevelop" style="display:inline">'center_of_gravity'</span><span data-if="c" style="display:none">"center_of_gravity"</span><span data-if="cpp" style="display:none">"center_of_gravity"</span><span data-if="com" style="display:none">"center_of_gravity"</span><span data-if="dotnet" style="display:none">"center_of_gravity"</span><span data-if="python" style="display:none">"center_of_gravity"</span></i>  </p>

</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'min_gray'</span><span data-if="c" style="display:none">"min_gray"</span><span data-if="cpp" style="display:none">"min_gray"</span><span data-if="com" style="display:none">"min_gray"</span><span data-if="dotnet" style="display:none">"min_gray"</span><span data-if="python" style="display:none">"min_gray"</span></i>:</b></dt>
<dd>
<p>
 is set to 100  </p>

</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'num_profiles'</span><span data-if="c" style="display:none">"num_profiles"</span><span data-if="cpp" style="display:none">"num_profiles"</span><span data-if="com" style="display:none">"num_profiles"</span><span data-if="dotnet" style="display:none">"num_profiles"</span><span data-if="python" style="display:none">"num_profiles"</span></i></b></dt>
<dd>
<p>
 is set to 512   </p>

</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'ambiguity_solving'</span><span data-if="c" style="display:none">"ambiguity_solving"</span><span data-if="cpp" style="display:none">"ambiguity_solving"</span><span data-if="com" style="display:none">"ambiguity_solving"</span><span data-if="dotnet" style="display:none">"ambiguity_solving"</span><span data-if="python" style="display:none">"ambiguity_solving"</span></i></b></dt>
<dd>
<p>
 is set to <i><span data-if="hdevelop" style="display:inline">'first'</span><span data-if="c" style="display:none">"first"</span><span data-if="cpp" style="display:none">"first"</span><span data-if="com" style="display:none">"first"</span><span data-if="dotnet" style="display:none">"first"</span><span data-if="python" style="display:none">"first"</span></i>  </p>

</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'score_type'</span><span data-if="c" style="display:none">"score_type"</span><span data-if="cpp" style="display:none">"score_type"</span><span data-if="com" style="display:none">"score_type"</span><span data-if="dotnet" style="display:none">"score_type"</span><span data-if="python" style="display:none">"score_type"</span></i></b></dt>
<dd>
<p>
 is set to <i><span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span></i>  </p>

</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'calibration'</span><span data-if="c" style="display:none">"calibration"</span><span data-if="cpp" style="display:none">"calibration"</span><span data-if="com" style="display:none">"calibration"</span><span data-if="dotnet" style="display:none">"calibration"</span><span data-if="python" style="display:none">"calibration"</span></i></b></dt>
<dd>
<p>
 is set to <i><span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span></i>  </p>


</dd>
</dl>
<p><b>Modify the sheet-of-light model parameters</b>
</p>
<p>We recommend to adapt the default parameters to your specific measurement
task, in order to enhance the quality of the measurement or to shorten the
runtime. You will also have to modify the default values of the model
parameters if you need calibrated results.
</p>
<p><code><span data-if="hdevelop" style="display:inline">create_sheet_of_light_model</span><span data-if="c" style="display:none">create_sheet_of_light_model</span><span data-if="cpp" style="display:none">CreateSheetOfLightModel</span><span data-if="com" style="display:none">CreateSheetOfLightModel</span><span data-if="dotnet" style="display:none">CreateSheetOfLightModel</span><span data-if="python" style="display:none">create_sheet_of_light_model</span></code> provides the generic parameters
<a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> and <a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a> to modify the default
value of most of the model parameters. Note that model parameters can also
be set by using 该算子 <a href="set_sheet_of_light_param.html"><code><span data-if="hdevelop" style="display:inline">set_sheet_of_light_param</span><span data-if="c" style="display:none">set_sheet_of_light_param</span><span data-if="cpp" style="display:none">SetSheetOfLightParam</span><span data-if="com" style="display:none">SetSheetOfLightParam</span><span data-if="dotnet" style="display:none">SetSheetOfLightParam</span><span data-if="python" style="display:none">set_sheet_of_light_param</span></code></a>. Nevertheless,
with this second operator only one parameter can be set at the same time,
whereas it is possible to set more than one parameter at the time with
<code><span data-if="hdevelop" style="display:inline">create_sheet_of_light_model</span><span data-if="c" style="display:none">create_sheet_of_light_model</span><span data-if="cpp" style="display:none">CreateSheetOfLightModel</span><span data-if="com" style="display:none">CreateSheetOfLightModel</span><span data-if="dotnet" style="display:none">CreateSheetOfLightModel</span><span data-if="python" style="display:none">create_sheet_of_light_model</span></code>. Refer to
<a href="set_sheet_of_light_param.html"><code><span data-if="hdevelop" style="display:inline">set_sheet_of_light_param</span><span data-if="c" style="display:none">set_sheet_of_light_param</span><span data-if="cpp" style="display:none">SetSheetOfLightParam</span><span data-if="com" style="display:none">SetSheetOfLightParam</span><span data-if="dotnet" style="display:none">SetSheetOfLightParam</span><span data-if="python" style="display:none">set_sheet_of_light_param</span></code></a> for a detailed description of all
supported generic parameters.
</p>
<p>Please note that the following model parameters can not be set with the
operator <code><span data-if="hdevelop" style="display:inline">create_sheet_of_light_model</span><span data-if="c" style="display:none">create_sheet_of_light_model</span><span data-if="cpp" style="display:none">CreateSheetOfLightModel</span><span data-if="com" style="display:none">CreateSheetOfLightModel</span><span data-if="dotnet" style="display:none">CreateSheetOfLightModel</span><span data-if="python" style="display:none">create_sheet_of_light_model</span></code>, and thus have to be set with
该算子 <a href="set_sheet_of_light_param.html"><code><span data-if="hdevelop" style="display:inline">set_sheet_of_light_param</span><span data-if="c" style="display:none">set_sheet_of_light_param</span><span data-if="cpp" style="display:none">SetSheetOfLightParam</span><span data-if="com" style="display:none">SetSheetOfLightParam</span><span data-if="dotnet" style="display:none">SetSheetOfLightParam</span><span data-if="python" style="display:none">set_sheet_of_light_param</span></code></a>: <i><span data-if="hdevelop" style="display:inline">'camera_parameter'</span><span data-if="c" style="display:none">"camera_parameter"</span><span data-if="cpp" style="display:none">"camera_parameter"</span><span data-if="com" style="display:none">"camera_parameter"</span><span data-if="dotnet" style="display:none">"camera_parameter"</span><span data-if="python" style="display:none">"camera_parameter"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'camera_pose'</span><span data-if="c" style="display:none">"camera_pose"</span><span data-if="cpp" style="display:none">"camera_pose"</span><span data-if="com" style="display:none">"camera_pose"</span><span data-if="dotnet" style="display:none">"camera_pose"</span><span data-if="python" style="display:none">"camera_pose"</span></i>, <i><span data-if="hdevelop" style="display:inline">'lightplane_pose'</span><span data-if="c" style="display:none">"lightplane_pose"</span><span data-if="cpp" style="display:none">"lightplane_pose"</span><span data-if="com" style="display:none">"lightplane_pose"</span><span data-if="dotnet" style="display:none">"lightplane_pose"</span><span data-if="python" style="display:none">"lightplane_pose"</span></i>, and
<i><span data-if="hdevelop" style="display:inline">'movement_pose'</span><span data-if="c" style="display:none">"movement_pose"</span><span data-if="cpp" style="display:none">"movement_pose"</span><span data-if="com" style="display:none">"movement_pose"</span><span data-if="dotnet" style="display:none">"movement_pose"</span><span data-if="python" style="display:none">"movement_pose"</span></i>.
</p>
<p>It is possible to query the value of the model parameters with the
operator <a href="get_sheet_of_light_param.html"><code><span data-if="hdevelop" style="display:inline">get_sheet_of_light_param</span><span data-if="c" style="display:none">get_sheet_of_light_param</span><span data-if="cpp" style="display:none">GetSheetOfLightParam</span><span data-if="com" style="display:none">GetSheetOfLightParam</span><span data-if="dotnet" style="display:none">GetSheetOfLightParam</span><span data-if="python" style="display:none">get_sheet_of_light_param</span></code></a>. The names of all supported
model parameters are returned by 该算子
<a href="query_sheet_of_light_params.html"><code><span data-if="hdevelop" style="display:inline">query_sheet_of_light_params</span><span data-if="c" style="display:none">query_sheet_of_light_params</span><span data-if="cpp" style="display:none">QuerySheetOfLightParams</span><span data-if="com" style="display:none">QuerySheetOfLightParams</span><span data-if="dotnet" style="display:none">QuerySheetOfLightParams</span><span data-if="python" style="display:none">query_sheet_of_light_params</span></code></a>.
</p>
<p><b>Use the simplified sheet-of-light model parameters</b>
</p>
<p>In case of a simple setup or if not a real metric calibration is necessary,
the transformation of the observed disparities into 3D values can
be controlled using a
simplified parameter set of the sheet-of-light model:
</p>
<p>By setting the calibration with the  <a href="set_sheet_of_light_param.html"><code><span data-if="hdevelop" style="display:inline">set_sheet_of_light_param</span><span data-if="c" style="display:none">set_sheet_of_light_param</span><span data-if="cpp" style="display:none">SetSheetOfLightParam</span><span data-if="com" style="display:none">SetSheetOfLightParam</span><span data-if="dotnet" style="display:none">SetSheetOfLightParam</span><span data-if="python" style="display:none">set_sheet_of_light_param</span></code></a> to
<i><span data-if="hdevelop" style="display:inline">'offset_scale'</span><span data-if="c" style="display:none">"offset_scale"</span><span data-if="cpp" style="display:none">"offset_scale"</span><span data-if="com" style="display:none">"offset_scale"</span><span data-if="dotnet" style="display:none">"offset_scale"</span><span data-if="python" style="display:none">"offset_scale"</span></i>, the poses and camera parameter are changed to such
values, that an offset of one pixel corresponds to one unit in the 3D
result. This allows to create a 3D object model and 3D images from
an uncalibrated sheet-of-light model.
</p>
<p>The transformation from disparity to 3D coordinates can be controlled by
six parameters:
<i><span data-if="hdevelop" style="display:inline">'scale_x'</span><span data-if="c" style="display:none">"scale_x"</span><span data-if="cpp" style="display:none">"scale_x"</span><span data-if="com" style="display:none">"scale_x"</span><span data-if="dotnet" style="display:none">"scale_x"</span><span data-if="python" style="display:none">"scale_x"</span></i>, <i><span data-if="hdevelop" style="display:inline">'scale_y'</span><span data-if="c" style="display:none">"scale_y"</span><span data-if="cpp" style="display:none">"scale_y"</span><span data-if="com" style="display:none">"scale_y"</span><span data-if="dotnet" style="display:none">"scale_y"</span><span data-if="python" style="display:none">"scale_y"</span></i>, <i><span data-if="hdevelop" style="display:inline">'scale_z'</span><span data-if="c" style="display:none">"scale_z"</span><span data-if="cpp" style="display:none">"scale_z"</span><span data-if="com" style="display:none">"scale_z"</span><span data-if="dotnet" style="display:none">"scale_z"</span><span data-if="python" style="display:none">"scale_z"</span></i>, <i><span data-if="hdevelop" style="display:inline">'offset_x'</span><span data-if="c" style="display:none">"offset_x"</span><span data-if="cpp" style="display:none">"offset_x"</span><span data-if="com" style="display:none">"offset_x"</span><span data-if="dotnet" style="display:none">"offset_x"</span><span data-if="python" style="display:none">"offset_x"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'offset_y'</span><span data-if="c" style="display:none">"offset_y"</span><span data-if="cpp" style="display:none">"offset_y"</span><span data-if="com" style="display:none">"offset_y"</span><span data-if="dotnet" style="display:none">"offset_y"</span><span data-if="python" style="display:none">"offset_y"</span></i>,<i><span data-if="hdevelop" style="display:inline">'offset_z'</span><span data-if="c" style="display:none">"offset_z"</span><span data-if="cpp" style="display:none">"offset_z"</span><span data-if="com" style="display:none">"offset_z"</span><span data-if="dotnet" style="display:none">"offset_z"</span><span data-if="python" style="display:none">"offset_z"</span></i>.  Refer to
<a href="set_sheet_of_light_param.html"><code><span data-if="hdevelop" style="display:inline">set_sheet_of_light_param</span><span data-if="c" style="display:none">set_sheet_of_light_param</span><span data-if="cpp" style="display:none">SetSheetOfLightParam</span><span data-if="com" style="display:none">SetSheetOfLightParam</span><span data-if="dotnet" style="display:none">SetSheetOfLightParam</span><span data-if="python" style="display:none">set_sheet_of_light_param</span></code></a> for a detailed description of all
supported generic parameters.
</p>
<p><b>Use of a handle in multiple threads</b>
</p>
<p>Please note that you have to take special care when using a handle of
a sheet-of-light-model <a href="#SheetOfLightModelID"><i><code><span data-if="hdevelop" style="display:inline">SheetOfLightModelID</span><span data-if="c" style="display:none">SheetOfLightModelID</span><span data-if="cpp" style="display:none">SheetOfLightModelID</span><span data-if="com" style="display:none">SheetOfLightModelID</span><span data-if="dotnet" style="display:none">sheetOfLightModelID</span><span data-if="python" style="display:none">sheet_of_light_model_id</span></code></i></a> in multiple threads.
One and the same handle cannot be used concurrently in different threads
if they modify the handle. Thus, you have to be careful especially
if the threads call operators that change the data of the handle.
You can find an according hint in the <i>'Attention'</i> section of the
operators.
Anyway, if you still want to use the same handle in operators that
concurrently write into the handle in different threads you have to
synchronize the threads to assure that they do not access the same
handle simultaneously. If you are not sure if the usage of the same
handle is thread-safe, please see the <i>'Attention'</i> section of the
respective reference manual entry if it contains a warning pointing
to this problem. However, different handles can be used independently
and safely in different threads.
</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<p>This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.</p>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="ProfileRegion" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ProfileRegion</span><span data-if="c" style="display:none">ProfileRegion</span><span data-if="cpp" style="display:none">ProfileRegion</span><span data-if="com" style="display:none">ProfileRegion</span><span data-if="dotnet" style="display:none">profileRegion</span><span data-if="python" style="display:none">profile_region</span></code></b> (input_object)  </span><span>region <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HRegion.html">HRegion</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HRegion.html">HRegion</a></span><span data-if="c" style="display:none">Hobject</span></span>
</div>
<p class="pardesc">Region of the images containing the profiles to be
processed. If the provided region is not rectangular,
its smallest enclosing rectangle will be used.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamName" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></b> (input_control)  </span><span>attribute.name(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Names of the generic parameters that can be
adjusted for the sheet-of-light model.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'min_gray'</span>
    <span data-if="c" style="display:none">"min_gray"</span>
    <span data-if="cpp" style="display:none">"min_gray"</span>
    <span data-if="com" style="display:none">"min_gray"</span>
    <span data-if="dotnet" style="display:none">"min_gray"</span>
    <span data-if="python" style="display:none">"min_gray"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'ambiguity_solving'</span><span data-if="c" style="display:none">"ambiguity_solving"</span><span data-if="cpp" style="display:none">"ambiguity_solving"</span><span data-if="com" style="display:none">"ambiguity_solving"</span><span data-if="dotnet" style="display:none">"ambiguity_solving"</span><span data-if="python" style="display:none">"ambiguity_solving"</span>, <span data-if="hdevelop" style="display:inline">'calibration'</span><span data-if="c" style="display:none">"calibration"</span><span data-if="cpp" style="display:none">"calibration"</span><span data-if="com" style="display:none">"calibration"</span><span data-if="dotnet" style="display:none">"calibration"</span><span data-if="python" style="display:none">"calibration"</span>, <span data-if="hdevelop" style="display:inline">'method'</span><span data-if="c" style="display:none">"method"</span><span data-if="cpp" style="display:none">"method"</span><span data-if="com" style="display:none">"method"</span><span data-if="dotnet" style="display:none">"method"</span><span data-if="python" style="display:none">"method"</span>, <span data-if="hdevelop" style="display:inline">'min_gray'</span><span data-if="c" style="display:none">"min_gray"</span><span data-if="cpp" style="display:none">"min_gray"</span><span data-if="com" style="display:none">"min_gray"</span><span data-if="dotnet" style="display:none">"min_gray"</span><span data-if="python" style="display:none">"min_gray"</span>, <span data-if="hdevelop" style="display:inline">'num_profiles'</span><span data-if="c" style="display:none">"num_profiles"</span><span data-if="cpp" style="display:none">"num_profiles"</span><span data-if="com" style="display:none">"num_profiles"</span><span data-if="dotnet" style="display:none">"num_profiles"</span><span data-if="python" style="display:none">"num_profiles"</span>, <span data-if="hdevelop" style="display:inline">'offset_x'</span><span data-if="c" style="display:none">"offset_x"</span><span data-if="cpp" style="display:none">"offset_x"</span><span data-if="com" style="display:none">"offset_x"</span><span data-if="dotnet" style="display:none">"offset_x"</span><span data-if="python" style="display:none">"offset_x"</span>, <span data-if="hdevelop" style="display:inline">'offset_y'</span><span data-if="c" style="display:none">"offset_y"</span><span data-if="cpp" style="display:none">"offset_y"</span><span data-if="com" style="display:none">"offset_y"</span><span data-if="dotnet" style="display:none">"offset_y"</span><span data-if="python" style="display:none">"offset_y"</span>, <span data-if="hdevelop" style="display:inline">'offset_z'</span><span data-if="c" style="display:none">"offset_z"</span><span data-if="cpp" style="display:none">"offset_z"</span><span data-if="com" style="display:none">"offset_z"</span><span data-if="dotnet" style="display:none">"offset_z"</span><span data-if="python" style="display:none">"offset_z"</span>, <span data-if="hdevelop" style="display:inline">'scale'</span><span data-if="c" style="display:none">"scale"</span><span data-if="cpp" style="display:none">"scale"</span><span data-if="com" style="display:none">"scale"</span><span data-if="dotnet" style="display:none">"scale"</span><span data-if="python" style="display:none">"scale"</span>, <span data-if="hdevelop" style="display:inline">'scale_x'</span><span data-if="c" style="display:none">"scale_x"</span><span data-if="cpp" style="display:none">"scale_x"</span><span data-if="com" style="display:none">"scale_x"</span><span data-if="dotnet" style="display:none">"scale_x"</span><span data-if="python" style="display:none">"scale_x"</span>, <span data-if="hdevelop" style="display:inline">'scale_y'</span><span data-if="c" style="display:none">"scale_y"</span><span data-if="cpp" style="display:none">"scale_y"</span><span data-if="com" style="display:none">"scale_y"</span><span data-if="dotnet" style="display:none">"scale_y"</span><span data-if="python" style="display:none">"scale_y"</span>, <span data-if="hdevelop" style="display:inline">'scale_z'</span><span data-if="c" style="display:none">"scale_z"</span><span data-if="cpp" style="display:none">"scale_z"</span><span data-if="com" style="display:none">"scale_z"</span><span data-if="dotnet" style="display:none">"scale_z"</span><span data-if="python" style="display:none">"scale_z"</span>, <span data-if="hdevelop" style="display:inline">'score_type'</span><span data-if="c" style="display:none">"score_type"</span><span data-if="cpp" style="display:none">"score_type"</span><span data-if="com" style="display:none">"score_type"</span><span data-if="dotnet" style="display:none">"score_type"</span><span data-if="python" style="display:none">"score_type"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamValue" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></b> (input_control)  </span><span>attribute.value(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[Union[int, float, str]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer / </span><span data-if="hdevelop" style="display:inline">real / </span><span data-if="hdevelop" style="display:inline">string)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double / </span><span data-if="dotnet" style="display:none">string)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i> / </span><span data-if="cpp" style="display:none">double / </span><span data-if="cpp" style="display:none">HString)</span><span data-if="c" style="display:none"> (<i>Hlong</i> / </span><span data-if="c" style="display:none">double / </span><span data-if="c" style="display:none">char*)</span></span>
</div>
<p class="pardesc">Values of the generic parameters that can be
adjusted for the sheet-of-light model.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>50</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span><span data-if="hdevelop" style="display:inline">'default'</span><span data-if="c" style="display:none">"default"</span><span data-if="cpp" style="display:none">"default"</span><span data-if="com" style="display:none">"default"</span><span data-if="dotnet" style="display:none">"default"</span><span data-if="python" style="display:none">"default"</span>, <span data-if="hdevelop" style="display:inline">'center_of_gravity'</span><span data-if="c" style="display:none">"center_of_gravity"</span><span data-if="cpp" style="display:none">"center_of_gravity"</span><span data-if="com" style="display:none">"center_of_gravity"</span><span data-if="dotnet" style="display:none">"center_of_gravity"</span><span data-if="python" style="display:none">"center_of_gravity"</span>, <span data-if="hdevelop" style="display:inline">'last'</span><span data-if="c" style="display:none">"last"</span><span data-if="cpp" style="display:none">"last"</span><span data-if="com" style="display:none">"last"</span><span data-if="dotnet" style="display:none">"last"</span><span data-if="python" style="display:none">"last"</span>, <span data-if="hdevelop" style="display:inline">'first'</span><span data-if="c" style="display:none">"first"</span><span data-if="cpp" style="display:none">"first"</span><span data-if="com" style="display:none">"first"</span><span data-if="dotnet" style="display:none">"first"</span><span data-if="python" style="display:none">"first"</span>, <span data-if="hdevelop" style="display:inline">'brightest'</span><span data-if="c" style="display:none">"brightest"</span><span data-if="cpp" style="display:none">"brightest"</span><span data-if="com" style="display:none">"brightest"</span><span data-if="dotnet" style="display:none">"brightest"</span><span data-if="python" style="display:none">"brightest"</span>, <span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span>, <span data-if="hdevelop" style="display:inline">'intensity'</span><span data-if="c" style="display:none">"intensity"</span><span data-if="cpp" style="display:none">"intensity"</span><span data-if="com" style="display:none">"intensity"</span><span data-if="dotnet" style="display:none">"intensity"</span><span data-if="python" style="display:none">"intensity"</span>, <span data-if="hdevelop" style="display:inline">'width'</span><span data-if="c" style="display:none">"width"</span><span data-if="cpp" style="display:none">"width"</span><span data-if="com" style="display:none">"width"</span><span data-if="dotnet" style="display:none">"width"</span><span data-if="python" style="display:none">"width"</span>, <span data-if="hdevelop" style="display:inline">'offset_scale'</span><span data-if="c" style="display:none">"offset_scale"</span><span data-if="cpp" style="display:none">"offset_scale"</span><span data-if="com" style="display:none">"offset_scale"</span><span data-if="dotnet" style="display:none">"offset_scale"</span><span data-if="python" style="display:none">"offset_scale"</span>, 50, 100, 150, 180</p>
</div>
  <div class="par">
<div class="parhead">
<span id="SheetOfLightModelID" class="parname"><b><code><span data-if="hdevelop" style="display:inline">SheetOfLightModelID</span><span data-if="c" style="display:none">SheetOfLightModelID</span><span data-if="cpp" style="display:none">SheetOfLightModelID</span><span data-if="com" style="display:none">SheetOfLightModelID</span><span data-if="dotnet" style="display:none">sheetOfLightModelID</span><span data-if="python" style="display:none">sheet_of_light_model_id</span></code></b> (output_control)  </span><span>sheet_of_light_model <code>→</code> <span data-if="dotnet" style="display:none"><a href="HSheetOfLightModel.html">HSheetOfLightModel</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle for using and accessing the sheet-of-light
model.</p>
</div>
<h2 id="sec_example_all">例程 (HDevelop)</h2>
<pre class="example">
* Create the rectangular region in which the profiles are measured.
gen_rectangle1 (ProfileRegion, 120, 75, 195, 710)
*
* Create a model in order to measure profiles according to
* the sheet-of-light technique. Simultaneously set some
* parameters for the model.
create_sheet_of_light_model (ProfileRegion, ['min_gray','num_profiles', \
                             'ambiguity_solving','score_type'], \
                             [70,290,'first','width'], \
  SheetOfLightModelID)
*
* Measure the profile from successive images
for Index := 1 to 290 by 1
    read_image (ProfileImage, 'sheet_of_light/connection_rod_'+Index$'.3')
    dev_display (ProfileImage)
    dev_display (ProfileRegion)
    measure_profile_sheet_of_light (ProfileImage, SheetOfLightModelID, [])
endfor
*
* Get the resulting disparity and score images
get_sheet_of_light_result (Disparity, SheetOfLightModelID, 'disparity')
get_sheet_of_light_result (Score, SheetOfLightModelID, 'score')
*
* Close the sheet-of-light handle once the measurement
* has been performed
</pre>
<h2 id="sec_result">结果</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">create_sheet_of_light_model</span><span data-if="c" style="display:none">create_sheet_of_light_model</span><span data-if="cpp" style="display:none">CreateSheetOfLightModel</span><span data-if="com" style="display:none">CreateSheetOfLightModel</span><span data-if="dotnet" style="display:none">CreateSheetOfLightModel</span><span data-if="python" style="display:none">create_sheet_of_light_model</span></code> 返回值 <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
    
if the given parameters are correct.
Otherwise, an exception will be raised.</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="gen_rectangle1.html"><span data-if="hdevelop" style="display:inline">gen_rectangle1</span><span data-if="c" style="display:none">gen_rectangle1</span><span data-if="cpp" style="display:none">GenRectangle1</span><span data-if="com" style="display:none">GenRectangle1</span><span data-if="dotnet" style="display:none">GenRectangle1</span><span data-if="python" style="display:none">gen_rectangle1</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="set_sheet_of_light_param.html"><span data-if="hdevelop" style="display:inline">set_sheet_of_light_param</span><span data-if="c" style="display:none">set_sheet_of_light_param</span><span data-if="cpp" style="display:none">SetSheetOfLightParam</span><span data-if="com" style="display:none">SetSheetOfLightParam</span><span data-if="dotnet" style="display:none">SetSheetOfLightParam</span><span data-if="python" style="display:none">set_sheet_of_light_param</span></a></code>, 
<code><a href="measure_profile_sheet_of_light.html"><span data-if="hdevelop" style="display:inline">measure_profile_sheet_of_light</span><span data-if="c" style="display:none">measure_profile_sheet_of_light</span><span data-if="cpp" style="display:none">MeasureProfileSheetOfLight</span><span data-if="com" style="display:none">MeasureProfileSheetOfLight</span><span data-if="dotnet" style="display:none">MeasureProfileSheetOfLight</span><span data-if="python" style="display:none">measure_profile_sheet_of_light</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="clear_sheet_of_light_model.html"><span data-if="hdevelop" style="display:inline">clear_sheet_of_light_model</span><span data-if="c" style="display:none">clear_sheet_of_light_model</span><span data-if="cpp" style="display:none">ClearSheetOfLightModel</span><span data-if="com" style="display:none">ClearSheetOfLightModel</span><span data-if="dotnet" style="display:none">ClearSheetOfLightModel</span><span data-if="python" style="display:none">clear_sheet_of_light_model</span></a></code>, 
<code><a href="calibrate_sheet_of_light.html"><span data-if="hdevelop" style="display:inline">calibrate_sheet_of_light</span><span data-if="c" style="display:none">calibrate_sheet_of_light</span><span data-if="cpp" style="display:none">CalibrateSheetOfLight</span><span data-if="com" style="display:none">CalibrateSheetOfLight</span><span data-if="dotnet" style="display:none">CalibrateSheetOfLight</span><span data-if="python" style="display:none">calibrate_sheet_of_light</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
3D Metrology</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
